home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2004 #6
/
Amiga Plus CD - 2004 - No. 06.iso
/
AmiSoft
/
Util
/
libs
/
ExtraLib.lha
/
Extra
/
include
/
rhosigma
/
extradefs.h
< prev
next >
Wrap
C/C++ Source or Header
|
2004-05-30
|
20KB
|
435 lines
/* ___________________________________________________________________________
** |*************************************************************************|
** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
** |*| Set TAB to 4 for best readable file layout. |*| C++ MaxonDev 4.0 |*|
** |*|______________________________________________|*|____________________|*|
** |*************************************************************************|
** |*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|*|
** |*| |*| $Id: extradefs.h (30.05.04) |*|
** |*| ###### ###### |*| RhoSigma Source based on NDK 3.1 Includes 40.15 |*|
** |*| ## ## ## # |*| _________________________________________________ |*|
** |*| ## ## ## |*| |*|
** |*| ###### ## |*| The public C/C++ definitions for extra.library |*|
** |*| ## ## |*| |*|
** |*| ## ## # |*| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |*|
** |*| ## ###### |*| Copyright © 1998-2004 RhoSigma, Roland Heyder |*|
** |*| |*| All Rights Reserved. |*|
** |*|_______________|*|___________________________________________________|*|
** |*************************************************************************|
** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
*/
#ifndef RHOSIGMA_EXTRADEFS_H
#define RHOSIGMA_EXTRADEFS_H
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif
#ifndef EXEC_ALERTS_H
#include <exec/alerts.h>
#endif
/* -------- benötigte typedef's ------------------------------------------ */
#ifndef XTRA_VLONG_TYPEDEF
#define XTRA_VLONG_TYPEDEF
typedef long long VLONG; /* 64-Bit Integer (V)ery(LONG) */
#endif
#ifndef XTRA_FFP_TYPEDEF
#define XTRA_FFP_TYPEDEF
typedef float FFP; /* Motorola's (F)ast(F)loating(P)oint-Format */
#endif
/* -------- die BufInfoBlock-Struktur von »BufInfo()« -------------------- */
struct BIBStruct {
APTR bib_OwnerID; /* Task (TCB), der diesen Puffer öffnete */
ULONG bib_MaxSize; /* momentane Größe des Datenbereichs in Byte */
ULONG bib_FreeSize; /* davon momentan noch unbenutzt */
APTR bib_DataStart; /* Adresse des gegenwärtigen Datenbereichs */
ULONG bib_CurPos; /* aktuelle Cursorposition (Zählbeginn=0 !!) */
ULONG bib_EndPos; /* aktuelle Anfügeposition */
APTR bib_LastFind; /* Zeiger auf zuletzt gesuchte Daten od. 0-PTR */
ULONG bib_FindSize; /* die Länge obiger Such-Daten oder null */
ULONG bib_KeyNum; /* der Schlüssel der o.g. Such-Daten oder -1 */
/* ---------------------------- neu ab v2.062 */
ULONG bib_DataMemType; /* Speicherflags (MEMF_...) des Datenbereichs */
};
/* -------- Modes für »SeekBuf()« ---------------------------------------- */
#define SKM_Current 0 /* Positionierung relativ zur gegenwärtigen CurPos */
#define SKM_Start 1 /* Positionierung relativ zum Pufferanfang */
#define SKM_End 2 /* Positionierung relativ zum Pufferende */
#define SKM_Bookmark 3 /* »Position« = Nummer der gewünschten Bookmark */
/* -------- die Parameter-Struktur für »UnpackByteRun1()« ---------------- */
struct UnpackParam {
APTR up_InBuf; /* Zeiger auf die gepackten Daten */
LONG up_InLen; /* die Größe des gepackten Bereichs in Byte */
LONG up_Private; /* beim ersten Aufruf unbedingt auf 0 setzen */
};
/* -------- Styles, Masken u. Flags für »SpecTextPrefs()« ---------------- */
/** Styles **/
#define STS_Plain 0 /* normaler Text \ */
#define STS_Underline 1 /* unterstrichener Text | können durch Addition oder */
#define STS_Bold 2 /* fettgedruckter Text | log. ODER kombiniert werden */
#define STS_Italic 4 /* kursiver Text / */
/** Masken **/
#define STM_Normal 0x00 /* keine Umrandung, d.h. normale Textausgabe */
#define STM_Outline 0xff /* volle Umrandung */
#define STM_Shadow 0x1c /* Schatten unten/rechts sichtbar */
#define STM_Ghost 0xc1 /* dies wirkt am besten, wenn Sie als »MPen« */
/* die selbe Farbe verwenden, wie der Hinter- */
/* grund hat */
/** Flags **/
#define STB_FJAM2 0 /* Normalerweise benutzt »SpecText()« den DrawMode JAM1, */
#define STF_FJAM2 1 /* mit diesem Flag wird jedoch JAM2 erzwungen. */
#define STB_AP2MP 1 /* immer der gerade eingestellte »APen« des RastPorts */
#define STF_AP2MP 2 /* soll als »MainPen« (MPen) verwendet werden */
#define STB_BP2TL 2 /* immer der gerade eingestellte »BPen« des RastPorts */
#define STF_BP2TL 4 /* soll als »TopLeftPen« (TLPen) verwendet werden */
#define STB_OP2BR 3 /* immer der gerade eingestellte »OPen« des RastPorts */
#define STF_OP2BR 8 /* soll als »BottomRightPen« (BRPen) verwendet werden */
#define STB_PSWAP 4 /* vertauscht »TLPen« u. »BRPen«, d.h. »TLPen« wird für */
#define STF_PSWAP 16 /* un./re. und »BRPen« für ob./li. verwendet */
/*
** Die folgenden Flags haben keinen Einfluß auf die Arbeitsweise der Funk-
** tion »SpecText()«. Sie dienen nur dazu, »SpecTextPrefs()« mitzuteilen,
** welche Parameter neu eingestellt werden sollen. Damit soll überflüssiges
** Register-retten verhindert werden, da Sie nicht jedem Register, welches
** von »SpecTextPrefs()« erwartet wird, zwangsläufig einen sinnvollen Wert
** zuweisen müssen. Wenn Sie z.B. mit D0-D5 irgendwelche Berechnungen machen,
** oder sie als Schleifenzähler benutzen, und wollen dann den »MPen« ver-
** ändern, dann brauchen Sie nur D0 mit diesem zu initialisieren und D5 das
** entsprechende Flag (STF_CMPEN) zuweisen, während Sie sich um D1-D4 nicht
** sorgen müssen, da diese bei jenem Aufruf vollkommen unberührt und unver-
** ändert bleiben, d.h. sie müssen weder gerettet noch initialisiert werden.
**
** ACHTUNG: Wenn keines der folgenden Flags angegeben wird, dann heißt das
** ¯¯¯¯¯¯¯¯ nicht, daß KEIN Wert geändert werden soll, sondern daß ALLE Werte
** zu ändern sind !! (In diesem Falle müssen dann logischer Weise
** auch alle Register initialisiert werden.)
*/
#define STB_CMPEN 10 /* Nur den »MPen« auf den angegebenen Wert ändern. */
#define STF_CMPEN 1024
#define STB_TLPEN 11 /* Nur den »TLPen« auf den angegebenen Wert ändern. */
#define STF_TLPEN 2048
#define STB_BRPEN 12 /* Nur den »BRPen« auf den angegebenen Wert ändern. */
#define STF_BRPEN 4096
#define STB_STYLE 13 /* Nur den SoftStyle auf den angegebenen Wert ändern. */
#define STF_STYLE 8162
#define STB_CMASK 14 /* Nur die Maske auf den angegebenen Wert ändern. */
#define STF_CMASK 16384
#define STB_FLAGS 15 /* Nur die Flags auf den angegebenen Wert ändern. */
#define STF_FLAGS 32768
/*
** Es können auch alle Kombinationen der obigen Flags angegeben werden. Die
** Funktion »SpecTextPrefs()« wird dann alles das, was Sie wünschen, ändern.
*/
/* -------- Fehlernummern von »LastError()« ------------------------------ */
#define NoError 0 /* bis jetzt ist kein Fehler aufgetreten */
/** DBS-Funktionen **/
#define BufInvalid 10 /* die angegebene Adresse war kein BufHandle */
#define NotOwner 11 /* nur der Task, der den Puffer öffnete, darf ihn auch wieder schließen */
#define NoBufMemory 12 /* nicht mehr genügend Speicher frei (MEMF_... s.a. bib_DataMemType) */
#define NoDOSProcess 13 /* die aufrufende Anwendung war kein DOS-Prozess */
#define IoErrRequired 14 /* ein DOS-Error ist aufgetreten (»IoErr()« der dos.library aufrufen) */
#define SeekBadMode 15 /* der angegebene »SeekMode« ist unbekannt */
#define SeekOffsetErr 16 /* gewünschte »Position« unter-/überschreitet den Pufferanfang bzw. das Pufferende */
#define NoFindMem 17 /* kein Speicher für Zwischenspeicherung der zu suchenden Daten (MEMF_PUBLIC) */
#define FindTooLong 18 /* von CurPos bis EndPos bzw. Pufferanfang sind nur noch weniger Daten, als gesucht werden sollen */
#define NoFindAvail 19 /* für »FindNext()/FindPrev()« ist mindestens ein »FindData()« erforderlich (gilt für jeden möglichen Schlüssel) */
#define InvalidKey 20 /* ein angegebener Schlüssel liegt außerhalb des gültigen Bereichs (bei Find-Funktionen max. 8 (0-7) / bei Bookmarks max. 16 (0-15)) */
#define MarkNotSet 21 /* die angegebene Bookmark ist noch nicht gesetzt */
#define MarkCleared 22 /* die Daten an der angegebenen Bookmark wurden durch »Clear()« gelöscht */
/** StringToLong() **/
#define ResultValid 30 /* alles in Ordnung (das Ergebnis ist gültig) */
#define InvalidChar 31 /* im String wurde ein illegales Zeichen gefunden */
#define Overflow 32 /* repräsentierte Zahl wäre größer als 32 Bit (LONG) */
/** FillMem() **/
#define OddAddress 35 /* ungerade Startadresse bei WORD- oder LONG-Modus */
#define NotFilled 36 /* keine Füllung wegen Abrundung (Bereich zu klein, um wenigstens 1 Wert aufzunehmen) */
/** ShowMsg() **/
#define BadHeight 40 /* angegebene Höhe war größer als 200 Videozeilen */
#define NoStructMem 41 /* kein Speicher für benötigte Gfx-Strukturen (MEMF_ANY) */
#define NoChipMemory 42 /* nicht genügend Speicher für die BitPlanes (MEMF_CHIP) */
#define SpecTextErr 43 /* die Funktion »SpecText()« hat einen Fehler gemeldet */
/* -------- die Basis-Struktur der extra.library ------------------------- */
struct XtraBase {
struct Library xb_LibStuff; /* standardmäßige Library-Struktur */
STRPTR xb_Copyright; /* ein einzeiliger Copyrightvermerk(+0) */
BYTE xb_Private[54]; /* privater Datenbereich der Library */
};
/* -------- von der extra.library erzeugte Alert's ----------------------- */
#define EL_AlertD AT_DeadEnd|AN_Unknown
#define EL_AlertR AT_Recovery|AN_Unknown
/* Typen-Kennungen der extra.library ($B5000000=DeadEnd/$35000000=Recovery) */
#define EL_NoDfo EL_AlertD|AG_OpenLib|AO_DiskfontLib
/* konnte diskfont.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen ($B503800B) */
#define EL_NoDOS EL_AlertD|AG_OpenLib|AO_DOSLib
/* konnte dos.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen ($B5038007) */
#define EL_NoGfx EL_AlertD|AG_OpenLib|AO_GraphicsLib
/* konnte graphics.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen ($B5038002) */
#define EL_NoInt EL_AlertD|AG_OpenLib|AO_Intuition
/* konnte intuition.library V33+ (bzw. V36+ für CGX-Version) nicht öffnen ($B5038004) */
#define EL_NoMath EL_AlertD|AG_OpenLib|AO_MathLib
/* konnte mathtrans.library V33+ oder */
/* konnte mathieeesingbas.library V33+ oder */
/* konnte mathieeedoubbas.library V33+ nicht öffnen ($B5038005) */
#define EL_Trespassed EL_AlertD|AG_IOError|AO_Unknown
/* Task hat Library benutzt, ohne sie vorher zu öffnen ($B5068035) */
/* -------- mit extra.library verwendbare MACROS & Funktionen ------------ */
#define SMTPOS_C -1 /* Text zentrieren */
#define SMTPOS_L -2 /* Text linksbündig */
#define SMTPOS_R -3 /* Text rechtsbündig */
/*** extra.library / SMCOLOR() ***
*»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
* Dieses Macro erstellt einen Farbeintrag für die optional anzugebende Farb-
* tabelle der Funktion »ShowMsg()«.
*-----------------------------------------------------------------------------
* Definiert: extradefs.h (Copyright © 1998-2004 RhoSigma, Roland Heyder)
*
* Schablone: Name/A, Pen/A/N, Red/A/N, Green/A/N, Blue/A/N, EndFlag/N/S
*
* Parameter: Name --> ein beliebiger Name als ID für diesen Farbeintrag
*
* Pen --> Nr. des zu ändernden Farbstiftes (3-15)
* (0-2 sind reserviert u. werden ignoriert)
*
* Red --> Rot-Anteil der neuen Farbe (0-15)
* Green --> Grün-Anteil der neuen Farbe (0-15)
* Blue --> Blau-Anteil der neuen Farbe (0-15)
*
* EndFlag --> - TRUE , dann endet hier die Farbtabelle
* - FALSE, dann MUSS noch ein weiterer Farbeintrag
* (Macro-Aufruf) folgen.
*
* Bemerkung: Ein Beispiel für die Benutzung dieses Macros finden Sie in
* der Datei »demo/ShowMsgDemo.C«.
*
* ACHTUNG: Die einzelnen Farbeinträge, die später zu einer Farbtabelle
* ¯¯¯¯¯¯¯¯ gehören, müssen auf JEDEN FALL direkt nacheinander deklariert
* werden, während zwischen zwei kompletten Farbtabellen aber
* durchaus auch andere Deklarationen gemacht werden können.
*«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
typedef struct {
UBYTE smc_Pen;
UBYTE smc_ColHi;
UBYTE smc_ColLo;
UBYTE smc_Cont;
} smcolor_t;
#define SMCOLOR(Name, Pen, Red, Green, Blue, EndFlag) \
STATIC smcolor_t Name = {Pen,((Red*256)+(Green*16)+Blue)>>8,((Red*256)+(Green*16)+Blue)&255,!EndFlag};
/*** extra.library / SMTEXTP() ***
*»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
* Dieses Macro erstellt einen Teilstring des Parameterstrings der ExtraLib-
* Routine »ShowMsg()«. Wahlweise kann der Text automatisch zentriert, oder
* links- bzw. rechtsbündig ausgerichtet werden.
*-----------------------------------------------------------------------------
* Definiert: extradefs.h (Copyright © 1998-2004 RhoSigma, Roland Heyder)
*
* Schablone: Name/A, xPos/A/N, yPos/A/N, MPen/A/N, TLPen/A/N, BRPen/A/N,
* Style/A/N, Mask/A/N, String/A, EndFlag/N/S
*
* Parameter: Name --> ein beliebiger Name als ID für diesen Teilstring
*
* xPos --> x-Position des Textes,
* oder einer der oben definierten SMTPOS-Werte
*
* yPos --> y-Position des Textes,
* Ausrichtung erfolgt an der Oberkante des Fonts
*
* MPen --> gewünschter MPen \
* TLPen --> gewünschter TLPen |
* BRPen --> gewünschter BRPen | (s.a. »SpecTextPrefs()«
* Style --> gewünschter SoftStyle |
* Mask --> gewünschte Rand-Maske /
*
* String --> der Text selbst aber ohne ("") Anführungszeichen
*
* EndFlag --> - TRUE , dann endet hier der Parameterstring
* - FALSE, dann MUSS noch ein weiterer Teilstring
* (Macro-Aufruf) folgen.
*
* Bemerkung: Leider gestattet der Macro-Aufbau sowie die Initialisierungs-
* Regeln in C/C++ und dazu noch die Macken einiger Compiler keinen
* vollständigen Aufbau des Parameterstrings. Aus diesem Grunde ist
* es in C/C++ erforderlich, die einzelnen Teilstrings vor der Be-
* nutzung noch mittels der ebenfalls hier beschriebenen Funktion
* »SMTJOIN()« abschließend vorzubereiten.
*
* Dieses Macro sollten Sie außerdem nur dann verwenden, wenn Sie
* für diesen Teilstring neue Einstellungen für Farben etc. machen
* wollen. Wenn dieser Teilstring jedoch mit den gleichen Ein-
* stellungen ausgegeben werden soll, wie der vorhergehende bzw.
* Sie die Default-Einstellungen verwenden wollen, dann müssen
* Sie stattdessen das Macro »SMTEXT()« verwenden.
*
* Ein Beispiel für die Benutzung dieses Macros finden Sie in
* der Datei »demo/ShowMsgDemo.C«.
*
* ACHTUNG: Die einzelnen Teilstrings, die später zu einem Parameterstring
* ¯¯¯¯¯¯¯¯ gehören, müssen auf JEDEN FALL direkt nacheinander deklariert
* werden, während zwischen zwei kompletten Parameterstrings aber
* durchaus auch andere Deklarationen gemacht werden können.
*
* Siehe auch: »SMTEXT()«, »SMTJOIN()«
*«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
#define SMTEXTP(Name, xPos, yPos, MPen, TLPen, BRPen, Style, Mask, String, EndFlag) \
typedef struct { \
WORD smt_PosX; \
UBYTE smt_PosY; \
UBYTE smt_Pref; \
UBYTE smt_MPen; \
UBYTE smt_TLPen; \
UBYTE smt_BRPen; \
UBYTE smt_Style; \
UBYTE smt_Mask; \
TEXT smt_Text[sizeof(#String)+((5-((sizeof(#String)-1)&3))&3)]; \
UBYTE smt_Cont; \
} smtextp_##Name; \
STATIC smtextp_##Name Name = {xPos,yPos,TRUE,MPen,TLPen,BRPen,Style,Mask,#String,!EndFlag};
/*** extra.library / SMTEXT() ***
*»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
* Dieses Macro erstellt einen Teilstring des Parameterstrings der ExtraLib-
* Routine »ShowMsg()«. Wahlweise kann der Text automatisch zentriert, oder
* links- bzw. rechtsbündig ausgerichtet werden.
*-----------------------------------------------------------------------------
* Definiert: extradefs.h (Copyright © 1998-2004 RhoSigma, Roland Heyder)
*
* Schablone: Name/A, xPos/A/N, yPos/A/N, String/A, EndFlag/N/S
*
* Parameter: Name --> ein beliebiger Name als ID für diesen Teilstring
*
* xPos --> x-Position des Textes,
* oder einer der oben definierten SMTPOS-Werte
*
* yPos --> y-Position des Textes,
* Ausrichtung erfolgt an der Oberkante des Fonts
*
* String --> der Text selbst aber ohne ("") Anführungszeichen
*
* EndFlag --> - TRUE , dann endet hier der Parameterstring
* - FALSE, dann MUSS noch ein weiterer Teilstring
* (Macro-Aufruf) folgen.
*
* Bemerkung: Leider gestattet der Macro-Aufbau sowie die Initialisierungs-
* Regeln in C/C++ und dazu noch die Macken einiger Compiler keinen
* vollständigen Aufbau des Parameterstrings. Aus diesem Grunde ist
* es in C/C++ erforderlich, die einzelnen Teilstrings vor der Be-
* nutzung noch mittels der ebenfalls hier beschriebenen Funktion
* »SMTJOIN()« abschließend vorzubereiten.
*
* Dieses Macro sollten Sie außerdem nur dann verwenden, wenn Sie
* für diesen Teilstring die gleichen Einstellungen wie für den
* vorhergehenden Teilstring verwenden wollen. Wenn dieser Teil-
* string jedoch neue Einstellungen für Farben etc. erhalten
* soll, dann müssen Sie stattdessen das Macro »SMTEXTP()« ver-
* wenden.
*
* Ein Beispiel für die Benutzung dieses Macros finden Sie in
* der Datei »demo/ShowMsgDemo.C«.
*
* ACHTUNG: Die einzelnen Teilstrings, die später zu einem Parameterstring
* ¯¯¯¯¯¯¯¯ gehören, müssen auf JEDEN FALL direkt nacheinander deklariert
* werden, während zwischen zwei kompletten Parameterstrings aber
* durchaus auch andere Deklarationen gemacht werden können.
*
* Siehe auch: »SMTEXTP()«, »SMTJOIN()«
*«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
#define SMTEXT(Name, xPos, yPos, String, EndFlag) \
typedef struct { \
WORD smt_PosX; \
UBYTE smt_PosY; \
UBYTE smt_Pref; \
TEXT smt_Text[sizeof(#String)+((6-((sizeof(#String)-1)&3))&3)]; \
UBYTE smt_Cont; \
} smtext_##Name; \
STATIC smtext_##Name Name = {xPos,yPos,FALSE,#String,!EndFlag};
/*** extra.library / SMTJOIN() ***
*»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
* Diese Funktion dient der abschließenden Vorbereitung der mittels »SMTEXT()«
* und/oder »SMTEXTP()« initialisierten Parameterstrings zur Verwendung mit
* »ShowMsg()«. Idealer Weise sollte man diese Funktion als erste innerhalb von
* »main()« aufrufen.
* Die Funktion ist Bestandteil der mitgelieferten »rhosigma.lib«, welche Sie
* mit Ihrem Projekt linken sollten.
*-----------------------------------------------------------------------------
* Synopsis: VOID SMTJOIN (Count, ...)
*
* Eingaben: Count --> (UWORD) Anzahl der übergebenen Teilstrings
*
* ... --> (&ID) nacheinander die Adressen (Referenzen) der
* einzelnen Teilstrings
*
* Bemerkung: Mehrfacher Aufruf für jeden einzelnen Teilstring ist möglich,
* aber durch die variable Argumentenliste eigentlich überflüssig,
* da man so auch alle Teilstrings auf einmal angeben kann.
*
* Ein Beispiel für die Benutzung dieser Funktion finden Sie in
* der Datei »demo/ShowMsgDemo.C«.
*
* ACHTUNG: Diese Funktion muß auch dann aufgerufen werden, wenn der Para-
* ¯¯¯¯¯¯¯¯ meterstring nur aus einem einzigen Teilstring besteht, da das
* Macro »SMTEXT()« bzw. »SMTEXTP()« keine vollständige Initiali-
* sierung des gleichen vornehmen kann. Das wird alles erst durch
* »SMTJOIN()« erledigt !!
*
* Siehe auch: »SMTEXT()«, »SMTEXTP()«
*«««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««*/
#ifndef RHOSIGMA_H
#include <rhosigma/rhosigma.h>
#endif
#endif /* RHOSIGMA_EXTRADEFS_H */